"""
分析：
    数据资源地址  https://antispider8.scrape.center/api/movie/
    js加密代码：
    e = Object(s.a)(this.$store.state.url.index);
    鼠标悬停找到传入参数的信息和js源码位置
    this.$store.state.url.index = "/api/movie"  资源地址字符串
    s.a = function() {
            for (var t = Math.round((new Date).getTime() / 1e3).toString(), e = arguments.length, r = new Array(e), n = 0; n < e; n++)
                r[n] = arguments[n];
            r.push(t);
            var o = i.SHA1(r.join(",")).toString(i.enc.Hex)
              , s = i.enc.Base64.stringify(i.enc.Utf8.parse([o, t].join(",")));
            return s
        }

    token使用"/api/movie"作为参数利用时间戳运算和加密算法以及编码来生成，跟"/api/movie",跟时间有关系 所以会过期

   js逆向解读js代码，然后利用python实现相同的加密逻辑
   让python可以运行这段js代码
   改写js代码


改写js代码
    1、浏览器版本要新
    2、这个js方法是局部的不能在全局中调用  我们这里要把js局部方法改成全局的 这样就可以直接在控制台调用方法 并且做拦截就可以得到生成token的值了
    3、将这个js局部方法挂载到window对象中去
    4、永久保存修改的js代码
        ① 点击sources面板左上角 >> 符号 中的overrides 创建一个js代码改写保存文件夹
        ② 返回返回page界面找到js方法进行改写
    5、用python进行js改写
        playwright 让python能够加载出浏览器的环境，执行js程序，篡改js程序
        playwright 模拟浏览器 执行网站的js代码 篡改js代码 让js代码进行调用
"""
from playwright.sync_api import sync_playwright

context = sync_playwright().start() #开始执行playwright
browser = context.chromium.launch(headless=False) #创建有头谷歌浏览器
page = browser.new_page()   #创建一个页面

page.route(
    '**/chunk-51935b2c.7a777070.js',
    lambda route:route.fulfill(path=r'./ChromeOverrides/antispider8.scrape.center/js/chunk.js')
)   #把网络请求中的chunk-51935b2c.7a777070.js替换成本地修改好的js文件

page.goto('https://antispider8.scrape.center')

token = page.evaluate(
    """
    ()=>{
    return window.g_token('%s')
    }
    """% '/api/movie'
)
print(token)